﻿#pragma once
#ifndef QJSON_ONLINE_H
#define QJSON_ONLINE_H

#include <qjsondocument.h>
#include <qjsonobject.h>
#include <qjsonarray.h>
#include <qfile.h>
#include <qvector.h>

/****************************************************************************************************/
/*                                           TO JSON                                                */
/****************************************************************************************************/
// QList
template<typename T>
QJsonArray _ToJson(const QList<T>& l)
{
    QJsonArray j;
    for (const auto& v : l) {
        j.append(v.toJsonObject());
    }
    return j;
}
template <> QJsonArray _ToJson(const QList<bool>& l);
template <> QJsonArray _ToJson(const QList<int>& l);
template <> QJsonArray _ToJson(const QList<double>& l);
template <> QJsonArray _ToJson(const QList<QString>& l);

// QVector
template<typename T>
QJsonArray _ToJson(const QVector<T>& v)
{
    QJsonArray j;
    for (const auto& _v : v) {
        j.append(_v.toJsonObject());
    }
    return j;
}
template <> QJsonArray _ToJson(const QVector<bool>& v);
template <> QJsonArray _ToJson(const QVector<int>& v);
template <> QJsonArray _ToJson(const QVector<double>& v);
template <> QJsonArray _ToJson(const QVector<QString>& v);

// Object
template<typename T>
inline QJsonObject _ToJson(const T& v) { return v.toJsonObject(); }
inline bool _ToJson(const bool& b) { return b; }
inline int _ToJson(const int& i) { return i; }
inline double _ToJson(const double& d) { return d; }
inline QString _ToJson(const QString& s) { return s; }

/****************************************************************************************************/
/*                                           FROM JSON                                              */
/****************************************************************************************************/
// QList
template<typename T>
QList<T> _FromJson(const QJsonValue& j, const QList<T>&)
{
    QList<T> l;
    const auto& _j = j.toArray();
    for (const auto& v : _j) {
        l.append(v.toObject());
    }
    return l;
}
template <> QList<bool> _FromJson(const QJsonValue& j, const QList<bool>&);
template <> QList<int> _FromJson(const QJsonValue& j, const QList<int>&);
template <> QList<double> _FromJson(const QJsonValue& j, const QList<double>&);
template <> QList<QString> _FromJson(const QJsonValue& j, const QList<QString>&);

// QVector
template<typename T>
QVector<T> _FromJson(const QJsonValue& j, const QVector<T>&)
{
    QVector<T> l;
    const auto& _j = j.toArray();
    for (const auto& v : _j) {
        l.append(v.toObject());
    }
    return l;
}
template <> QVector<bool> _FromJson(const QJsonValue& j, const QVector<bool>&);
template <> QVector<int> _FromJson(const QJsonValue& j, const QVector<int>&);
template <> QVector<double> _FromJson(const QJsonValue& j, const QVector<double>&);
template <> QVector<QString> _FromJson(const QJsonValue& j, const QVector<QString>&);

// Object
template<typename T>
inline T _FromJson(const QJsonValue& j, const T&) { return j.toObject(); }
inline bool _FromJson(const QJsonValue& j, const bool&) { return j.toBool(); }
inline int _FromJson(const QJsonValue& j, const int&) { return j.toInt(); }
inline double _FromJson(const QJsonValue& j, const double&) { return j.toDouble(); }
inline QString _FromJson(const QJsonValue& j, const QString&) { return j.toString(); }

/****************************************************************************************************/
/*                                           DEFINE                                                 */
/****************************************************************************************************/
#define TO_STR(s) #s

inline QString& _QJSON_KEY(QString&& str) { return (str.at(0) == '_') ? str.remove(0, 1) : str; }

#define TO_JSON_STR(KEY) _QJSON_KEY(QString(TO_STR(KEY)))

#define QJSON_EXPAND_FROM(KEY) \
    KEY = _FromJson(j.value(TO_JSON_STR(KEY)), KEY);

#define QJSON_EXPAND_TO(KEY) \
    j[TO_JSON_STR(KEY)] = _ToJson(KEY);

#define QJSON_ONLINE_CODE_BEGIN(CLASS) \
    CLASS(const QJsonObject& j) { fromJson(j); } \
    CLASS(const QByteArray& s) { fromJson(s); } \
    CLASS(QFile& f) { fromJson(f); } \
    CLASS(QFile&& f) { fromJson(f); } \
    void fromJson(const QJsonObject& j) {
#define QJSON_ONLINE_CODE_PART \
    } \
    inline void fromJson(const QByteArray& s) { fromJson(QJsonDocument::fromJson(s).object()); } \
    bool fromJson(QFile& f) { if (f.open(QIODevice::ReadOnly)) { fromJson(f.readAll()); f.close(); return true; } return false; } \
    bool fromJson(QFile&& f) { if (f.open(QIODevice::ReadOnly)) { fromJson(f.readAll()); f.close(); return true; } return false; } \
    QJsonObject toJsonObject() const { QJsonObject j;
#define QJSON_ONLINE_CODE_END \
    return j; } \
    inline QByteArray toJson(QJsonDocument::JsonFormat format = QJsonDocument::JsonFormat::Compact) const { return QJsonDocument(toJsonObject()).toJson(format); } \
    bool toJson(QFile& f, QJsonDocument::JsonFormat format = QJsonDocument::JsonFormat::Compact) const { if (f.open(QIODevice::WriteOnly)) { f.write(toJson(format)); f.flush(); f.close(); return true; } return false; } \
    bool toJson(QFile&& f, QJsonDocument::JsonFormat format = QJsonDocument::JsonFormat::Compact) const { if (f.open(QIODevice::WriteOnly)) { f.write(toJson(format)); f.flush(); f.close(); return true; } return false; }

#define QJSON_ONLINE_1(CLASS) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_ONLINE_CODE_PART \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_2(CLASS, KEY1) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_3(CLASS, KEY1, KEY2) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_4(CLASS, KEY1, KEY2, KEY3) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_5(CLASS, KEY1, KEY2, KEY3, KEY4) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_6(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_7(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_8(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_9(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_10(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_11(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_12(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_13(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_14(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_15(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_16(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_17(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_18(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_19(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_20(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_21(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_22(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_23(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_24(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_25(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_26(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_27(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_28(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_29(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_30(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_31(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_32(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_33(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_34(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_35(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_36(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_37(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_38(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_39(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_40(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_41(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_42(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_43(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_44(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_45(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_46(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_47(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_48(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_49(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_50(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_51(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_52(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_53(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_54(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_55(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_56(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54, KEY55) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) QJSON_EXPAND_FROM(KEY55) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) QJSON_EXPAND_TO(KEY55) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_57(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54, KEY55, KEY56) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) QJSON_EXPAND_FROM(KEY55) QJSON_EXPAND_FROM(KEY56) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) QJSON_EXPAND_TO(KEY55) QJSON_EXPAND_TO(KEY56) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_58(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54, KEY55, KEY56, KEY57) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) QJSON_EXPAND_FROM(KEY55) QJSON_EXPAND_FROM(KEY56) QJSON_EXPAND_FROM(KEY57) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) QJSON_EXPAND_TO(KEY55) QJSON_EXPAND_TO(KEY56) QJSON_EXPAND_TO(KEY57) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_59(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54, KEY55, KEY56, KEY57, KEY58) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) QJSON_EXPAND_FROM(KEY55) QJSON_EXPAND_FROM(KEY56) QJSON_EXPAND_FROM(KEY57) QJSON_EXPAND_FROM(KEY58) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) QJSON_EXPAND_TO(KEY55) QJSON_EXPAND_TO(KEY56) QJSON_EXPAND_TO(KEY57) QJSON_EXPAND_TO(KEY58) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_60(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54, KEY55, KEY56, KEY57, KEY58, KEY59) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) QJSON_EXPAND_FROM(KEY55) QJSON_EXPAND_FROM(KEY56) QJSON_EXPAND_FROM(KEY57) QJSON_EXPAND_FROM(KEY58) QJSON_EXPAND_FROM(KEY59) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) QJSON_EXPAND_TO(KEY55) QJSON_EXPAND_TO(KEY56) QJSON_EXPAND_TO(KEY57) QJSON_EXPAND_TO(KEY58) QJSON_EXPAND_TO(KEY59) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_61(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54, KEY55, KEY56, KEY57, KEY58, KEY59, KEY60) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) QJSON_EXPAND_FROM(KEY55) QJSON_EXPAND_FROM(KEY56) QJSON_EXPAND_FROM(KEY57) QJSON_EXPAND_FROM(KEY58) QJSON_EXPAND_FROM(KEY59) QJSON_EXPAND_FROM(KEY60) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) QJSON_EXPAND_TO(KEY55) QJSON_EXPAND_TO(KEY56) QJSON_EXPAND_TO(KEY57) QJSON_EXPAND_TO(KEY58) QJSON_EXPAND_TO(KEY59) QJSON_EXPAND_TO(KEY60) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_62(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54, KEY55, KEY56, KEY57, KEY58, KEY59, KEY60, KEY61) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) QJSON_EXPAND_FROM(KEY55) QJSON_EXPAND_FROM(KEY56) QJSON_EXPAND_FROM(KEY57) QJSON_EXPAND_FROM(KEY58) QJSON_EXPAND_FROM(KEY59) QJSON_EXPAND_FROM(KEY60) QJSON_EXPAND_FROM(KEY61) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) QJSON_EXPAND_TO(KEY55) QJSON_EXPAND_TO(KEY56) QJSON_EXPAND_TO(KEY57) QJSON_EXPAND_TO(KEY58) QJSON_EXPAND_TO(KEY59) QJSON_EXPAND_TO(KEY60) QJSON_EXPAND_TO(KEY61) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_63(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54, KEY55, KEY56, KEY57, KEY58, KEY59, KEY60, KEY61, KEY62) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) QJSON_EXPAND_FROM(KEY55) QJSON_EXPAND_FROM(KEY56) QJSON_EXPAND_FROM(KEY57) QJSON_EXPAND_FROM(KEY58) QJSON_EXPAND_FROM(KEY59) QJSON_EXPAND_FROM(KEY60) QJSON_EXPAND_FROM(KEY61) QJSON_EXPAND_FROM(KEY62) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) QJSON_EXPAND_TO(KEY55) QJSON_EXPAND_TO(KEY56) QJSON_EXPAND_TO(KEY57) QJSON_EXPAND_TO(KEY58) QJSON_EXPAND_TO(KEY59) QJSON_EXPAND_TO(KEY60) QJSON_EXPAND_TO(KEY61) QJSON_EXPAND_TO(KEY62) \
    QJSON_ONLINE_CODE_END

#define QJSON_ONLINE_64(CLASS, KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, KEY30, KEY31, KEY32, KEY33, KEY34, KEY35, KEY36, KEY37, KEY38, KEY39, KEY40, KEY41, KEY42, KEY43, KEY44, KEY45, KEY46, KEY47, KEY48, KEY49, KEY50, KEY51, KEY52, KEY53, KEY54, KEY55, KEY56, KEY57, KEY58, KEY59, KEY60, KEY61, KEY62, KEY63) \
    QJSON_ONLINE_CODE_BEGIN(CLASS) \
    QJSON_EXPAND_FROM(KEY1) QJSON_EXPAND_FROM(KEY2) QJSON_EXPAND_FROM(KEY3) QJSON_EXPAND_FROM(KEY4) QJSON_EXPAND_FROM(KEY5) QJSON_EXPAND_FROM(KEY6) QJSON_EXPAND_FROM(KEY7) QJSON_EXPAND_FROM(KEY8) QJSON_EXPAND_FROM(KEY9) QJSON_EXPAND_FROM(KEY10) QJSON_EXPAND_FROM(KEY11) QJSON_EXPAND_FROM(KEY12) QJSON_EXPAND_FROM(KEY13) QJSON_EXPAND_FROM(KEY14) QJSON_EXPAND_FROM(KEY15) QJSON_EXPAND_FROM(KEY16) QJSON_EXPAND_FROM(KEY17) QJSON_EXPAND_FROM(KEY18) QJSON_EXPAND_FROM(KEY19) QJSON_EXPAND_FROM(KEY20) QJSON_EXPAND_FROM(KEY21) QJSON_EXPAND_FROM(KEY22) QJSON_EXPAND_FROM(KEY23) QJSON_EXPAND_FROM(KEY24) QJSON_EXPAND_FROM(KEY25) QJSON_EXPAND_FROM(KEY26) QJSON_EXPAND_FROM(KEY27) QJSON_EXPAND_FROM(KEY28) QJSON_EXPAND_FROM(KEY29) QJSON_EXPAND_FROM(KEY30) QJSON_EXPAND_FROM(KEY31) QJSON_EXPAND_FROM(KEY32) QJSON_EXPAND_FROM(KEY33) QJSON_EXPAND_FROM(KEY34) QJSON_EXPAND_FROM(KEY35) QJSON_EXPAND_FROM(KEY36) QJSON_EXPAND_FROM(KEY37) QJSON_EXPAND_FROM(KEY38) QJSON_EXPAND_FROM(KEY39) QJSON_EXPAND_FROM(KEY40) QJSON_EXPAND_FROM(KEY41) QJSON_EXPAND_FROM(KEY42) QJSON_EXPAND_FROM(KEY43) QJSON_EXPAND_FROM(KEY44) QJSON_EXPAND_FROM(KEY45) QJSON_EXPAND_FROM(KEY46) QJSON_EXPAND_FROM(KEY47) QJSON_EXPAND_FROM(KEY48) QJSON_EXPAND_FROM(KEY49) QJSON_EXPAND_FROM(KEY50) QJSON_EXPAND_FROM(KEY51) QJSON_EXPAND_FROM(KEY52) QJSON_EXPAND_FROM(KEY53) QJSON_EXPAND_FROM(KEY54) QJSON_EXPAND_FROM(KEY55) QJSON_EXPAND_FROM(KEY56) QJSON_EXPAND_FROM(KEY57) QJSON_EXPAND_FROM(KEY58) QJSON_EXPAND_FROM(KEY59) QJSON_EXPAND_FROM(KEY60) QJSON_EXPAND_FROM(KEY61) QJSON_EXPAND_FROM(KEY62) QJSON_EXPAND_FROM(KEY63) \
    QJSON_ONLINE_CODE_PART \
    QJSON_EXPAND_TO(KEY1) QJSON_EXPAND_TO(KEY2) QJSON_EXPAND_TO(KEY3) QJSON_EXPAND_TO(KEY4) QJSON_EXPAND_TO(KEY5) QJSON_EXPAND_TO(KEY6) QJSON_EXPAND_TO(KEY7) QJSON_EXPAND_TO(KEY8) QJSON_EXPAND_TO(KEY9) QJSON_EXPAND_TO(KEY10) QJSON_EXPAND_TO(KEY11) QJSON_EXPAND_TO(KEY12) QJSON_EXPAND_TO(KEY13) QJSON_EXPAND_TO(KEY14) QJSON_EXPAND_TO(KEY15) QJSON_EXPAND_TO(KEY16) QJSON_EXPAND_TO(KEY17) QJSON_EXPAND_TO(KEY18) QJSON_EXPAND_TO(KEY19) QJSON_EXPAND_TO(KEY20) QJSON_EXPAND_TO(KEY21) QJSON_EXPAND_TO(KEY22) QJSON_EXPAND_TO(KEY23) QJSON_EXPAND_TO(KEY24) QJSON_EXPAND_TO(KEY25) QJSON_EXPAND_TO(KEY26) QJSON_EXPAND_TO(KEY27) QJSON_EXPAND_TO(KEY28) QJSON_EXPAND_TO(KEY29) QJSON_EXPAND_TO(KEY30) QJSON_EXPAND_TO(KEY31) QJSON_EXPAND_TO(KEY32) QJSON_EXPAND_TO(KEY33) QJSON_EXPAND_TO(KEY34) QJSON_EXPAND_TO(KEY35) QJSON_EXPAND_TO(KEY36) QJSON_EXPAND_TO(KEY37) QJSON_EXPAND_TO(KEY38) QJSON_EXPAND_TO(KEY39) QJSON_EXPAND_TO(KEY40) QJSON_EXPAND_TO(KEY41) QJSON_EXPAND_TO(KEY42) QJSON_EXPAND_TO(KEY43) QJSON_EXPAND_TO(KEY44) QJSON_EXPAND_TO(KEY45) QJSON_EXPAND_TO(KEY46) QJSON_EXPAND_TO(KEY47) QJSON_EXPAND_TO(KEY48) QJSON_EXPAND_TO(KEY49) QJSON_EXPAND_TO(KEY50) QJSON_EXPAND_TO(KEY51) QJSON_EXPAND_TO(KEY52) QJSON_EXPAND_TO(KEY53) QJSON_EXPAND_TO(KEY54) QJSON_EXPAND_TO(KEY55) QJSON_EXPAND_TO(KEY56) QJSON_EXPAND_TO(KEY57) QJSON_EXPAND_TO(KEY58) QJSON_EXPAND_TO(KEY59) QJSON_EXPAND_TO(KEY60) QJSON_EXPAND_TO(KEY61) QJSON_EXPAND_TO(KEY62) QJSON_EXPAND_TO(KEY63) \
    QJSON_ONLINE_CODE_END

/****************************************************************************************************/
/*                                           EXPORT                                                 */
/****************************************************************************************************/
#define PRIVATE_MACRO_VAR_ARGS_IMPL_COUNT(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63,_64,N,...) N
#define PRIVATE_MACRO_VAR_ARGS_IMPL(args) PRIVATE_MACRO_VAR_ARGS_IMPL_COUNT args
#define COUNT_MACRO_VAR_ARGS(...) PRIVATE_MACRO_VAR_ARGS_IMPL((__VA_ARGS__,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1))

#define PRIVATE_MACRO_CHOOSE_HELPER2(M, count) M##count
#define PRIVATE_MACRO_CHOOSE_HELPER1(M, count) PRIVATE_MACRO_CHOOSE_HELPER2(M, count)
#define PRIVATE_MACRO_CHOOSE_HELPER(M, count) PRIVATE_MACRO_CHOOSE_HELPER1(M, count)

#ifdef WIN32
#define EXPAND(...) __VA_ARGS__
#define QJSON_ONLINE(...) EXPAND(PRIVATE_MACRO_CHOOSE_HELPER(QJSON_ONLINE_, COUNT_MACRO_VAR_ARGS( __VA_ARGS__))( __VA_ARGS__))
#else
#define QJSON_ONLINE(...) PRIVATE_MACRO_CHOOSE_HELPER(QJSON_ONLINE_, COUNT_MACRO_VAR_ARGS( __VA_ARGS__))( __VA_ARGS__)
#endif

#endif
